package com.liliudong.template.biz.service.sys;

import com.baomidou.mybatisplus.extension.service.IService;
import com.liliudong.template.common.entity.sys.SysRoleMenu;

import java.util.List;
import java.util.Set;

public interface SysRoleMenuService extends IService<SysRoleMenu>{

	/**
	 * 使用角色id保存批次
	 *
	 * @param roleId  角色id
	 * @param menuIds 菜单ID
	 */
	void saveBatchWithRoleId(Long roleId, List<Long> menuIds);

	/**
	 * 按角色id删除
	 *
	 * @param roleId 角色id
	 */
	void removeByRoleId(Long roleId);

	/**
	 * 使用角色id更新批处理
	 *
	 * @param roleId  角色id
	 * @param menuIds 菜单ID
	 */
	void updateBatchWithRoleId(Long roleId, List<Long> menuIds);

	/**
	 * 按菜单id计数
	 *
	 * @param menuId 菜单id
	 * @return int
	 */
	long countByMenuId(Long menuId);

	/**
	 * 按角色id列出菜单id
	 *
	 * @param roleId 角色id
	 * @return {@link Set }<{@link Long }>
	 */
	Set<Long> listMenuIdsByRoleId(Long roleId);

	/**
	 * 列表菜单ID
	 *
	 * @return {@link Set }<{@link Long }>
	 */
	Set<Long> listMenuIds();
}
